home *** CD-ROM | disk | FTP | other *** search
- Xref: bloom-picayune.mit.edu news.answers:4267 comp.lang.perl:14078
- Newsgroups: news.answers,comp.lang.perl
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!usc!cs.utexas.edu!wupost!news.utdallas.edu!convex!tchrist
- From: Tom Christiansen <tchrist@convex.COM>
- Subject: comp.lang.perl FAQ (part 1 of 2)
- Originator: tchrist@pixel.convex.com
- Sender: usenet@news.eng.convex.com (news access account)
- Message-ID: <1992Nov30.125050.8928@news.eng.convex.com>
- Approved: news-answers-request@MIT.Edu
- Date: Mon, 30 Nov 1992 12:50:50 GMT
- Reply-To: tchrist@convex.COM (Tom Christiansen)
- References: <1992Nov30.124619.8579@news.eng.convex.com>
- Nntp-Posting-Host: pixel.convex.com
- Organization: Convex Computer Corporation, Colorado Springs, CO
- Followup-To: comp.lang.perl
- X-Disclaimer: This message was written by a user at CONVEX Computer
- Corp. The opinions expressed are those of the user and
- not necessarily those of CONVEX.
- Lines: 860
-
- Archive-name: perl-faq/part1
- Version: $Id: perl-info,v 1.2 92/11/30 05:22:33 tchrist Exp Locker: tchrist $
-
- This posting contains answers to general information questions,
- mostly of a non-technical nature. The following questions are
- answered:
-
- 1.1) What is Perl?
- 1.2) Is Perl hard to learn?
- 1.3) Should I program everything in Perl?
- 1.4) Where can I get Perl over the Internet?
- 1.5) Where can I get Perl via Email?
- 1.6) How can I get Perl via UUCP?
- 1.7) Where can I get more information on Perl?
- 1.8) Can people who aren't on USENET receive comp.lang.perl as a digest?
- 1.9) Are archives of comp.lang.perl available?
- 1.10) How do I get Perl to run on machine FOO?
- 1.11) Where can I get (info|inter|ora|sql|syb)perl?
- 1.12) There's an a2p and an s2p; why isn't there a p2c (perl-to-C)?
- 1.13) Where can I get undump for my machine?
- 1.14) Where can I get a perl-mode for emacs?
- 1.15) How can I use Perl interactively?
- 1.16) Is there a Perl shell?
- 1.17) Is there a Perl profiler?
- 1.18) Is there a yacc for Perl?
- 1.19) How can I use curses with perl?
- 1.20) How can I use X with Perl?
- 1.21) What is perl4? What is perl5?
- 1.22) How does Perl compare with languages like REXX or TCL?
- 1.23) Is it a Perl program or a Perl script?
- 1.24) What's the difference between "Perl" and "perl"?
- 1.25) What companies use or ship Perl?
- 1.26) Is there commercial, 3rd-party support for Perl?
- 1.27) Where can I get a list of the JAPH signature quotes?
- 1.28) Where can I get a list of Larry Wall witticisms?
- 1.29) Is there a pretty-printer for Perl?
-
-
- 1.1) What is Perl?
-
- A programming language, by Larry Wall <lwall@netlabs.com>.
-
- Here's the beginning of the description from the man page:
-
- Perl is an interpreted language optimized for scanning arbitrary text
- files, extracting information from those text files, and printing reports
- based on that information. It's also a good language for many system
- management tasks. The language is intended to be practical (easy to use,
- efficient, complete) rather than beautiful (tiny, elegant, minimal). It
- combines (in the author's opinion, anyway) some of the best features of C,
- sed, awk, and sh, so people familiar with those languages should have
- little difficulty with it. (Language historians will also note some
- vestiges of csh, Pascal, and even BASIC-PLUS.) Expression syntax
- corresponds quite closely to C expression syntax. Unlike most Unix
- utilities, Perl does not arbitrarily limit the size of your data--if
- you've got the memory, Perl can slurp in your whole file as a single
- string. Recursion is of unlimited depth. And the hash tables used by
- associative arrays grow as necessary to prevent degraded performance.
- Perl uses sophisticated pattern matching techniques to scan large amounts
- of data very quickly. Although optimized for scanning text, Perl can also
- deal with binary data, and can make dbm files look like associative arrays
- (where dbm is available). Setuid Perl scripts are safer than C programs
- through a dataflow tracing mechanism which prevents many stupid security
- holes. If you have a problem that would ordinarily use sed or awk or sh,
- but it exceeds their capabilities or must run a little faster, and you
- don't want to write the silly thing in C, then Perl may be for you. There
- are also translators to turn your sed and awk scripts into Perl scripts.
-
-
- 1.2) Is Perl hard to learn?
-
- No, Perl is easy to learn for two reasons.
-
- The first reason is that most of Perl is derived from existing tools
- and languages, ones that many people who turn to Perl already have
- some familiarity with. These include the C programming language, the
- UNIX C library, the UNIX shell, sed, and awk. If you already know
- these somewhat, Perl should be very easy for you.
-
- The second reason that Perl is easy to learn is that you don't have to
- know every thing there is to know about it in order to get good use
- out of it. In fact, just a very small subset, mostly borrowed from C,
- the shell, and sed, will be enough for most tasks. As you feel the
- need or desire to use more sophisticated features (such as C
- structures or networking), you can learn these as you go. The
- learning curve for Perl is not a steep one, especially if you have
- the headstart of having a background in UNIX. Rather, its learning
- curve is gentle and gradual, but it *is* admittedly rather long.
-
- If you don't know C or UNIX at all, it'll be a steeper learning curve,
- but what you then learn from Perl will carry over into other areas,
- like using the C library, UNIX system call, regular expressions, and
- associative arrays, just to name a few. To know Perl is to know
- UNIX, and vice versa.
-
-
- 1.3) Should I program everything in Perl?
-
- Of course not. You should choose the appropriate tool for the task at
- hand. While it's true that the answer to the question "Can I do (some
- arbitrary task) in Perl?" is almost always "yes", that doesn't mean
- this is necessarily a good thing to do. For many people, Perl serves
- as a great replacement for shell programming. For a few people, it
- also serves as a replacement for most of what they'd do in C. But
- for some things, Perl just isn't the optimal choice, such as tasks
- requiring very complex data structures.
-
-
- 1.4) Where can I get Perl over the Internet?
-
- From any comp.sources.misc archive. Initial sources were posted to
- Volume 18, Issues 19-54 at patchlevel 3. The Patches 4-10 were posted
- to Volume 20, Issues 56-62. You can use the archie server
- (see the alt.sources FAQ in news.answers) for ways to find these.
-
- These machines, at the very least, definitely have it available for
- anonymous FTP:
-
- ftp.uu.net 137.39.1.2
- archive.cis.ohio-state.edu 128.146.8.52
- jpl-devvax.jpl.nasa.gov 128.149.1.143
- ftp.netlabs.com 192.94.48.152
- prep.ai.mit.edu 18.71.0.38
- ftp.cs.ruu.nl 131.211.80.17 (Europe)
-
-
-
-
- 1.5) Where can I get Perl via Email?
-
- If you are in Europe, you might using the following site. (I'm still
- looking for a domestic site.) This information thanks to "Henk P.
- Penning" <henkp@cs.ruu.nl>: One automated fashion is as follows:
-
- Email: Send a message to 'mail-server@cs.ruu.nl' containing:
- begin
- path your_email_address
- send help
- send PERL/INDEX
- end
- The path-line may be omitted if your message contains a normal From:-line.
- You will receive a help-file and an index of the directory that contains
- the Perl stuff.
-
- If all else fails, mail to Larry usually suffices.
-
-
- 1.6) How can I get Perl via UUCP?
-
- You can get it from the site osu-cis; here is the appropriate info,
- thanks to J Greely <jgreely@cis.ohio-state.edu> or <osu-cis!jgreely>.
-
- E-mail contact:
- osu-cis!uucp
- Get these two files first:
- osu-cis!~/GNU.how-to-get.
- osu-cis!~/ls-lR.Z
- Current Perl distribution:
- osu-cis!~/perl/4.0/kits@10/perl.kitXX.Z (XX=01-37)
- How to reach osu-cis via uucp(L.sys/Systems file lines):
- #
- # Direct Trailblazer
- #
- osu-cis Any ACU 19200 1-614-292-5112 in:--in:--in: Uanon
- #
- # Direct V.32 (MNP 4)
- # dead, dead, dead...sigh.
- #
- #osu-cis Any ACU 9600 1-614-292-1153 in:--in:--in: Uanon
- #
- # Micom port selector, at 1200, 2400, or 9600 bps.
- # Replace ##'s below with 12, 24, or 96 (both speed and phone number).
- #
- osu-cis Any ACU ##00 1-614-292-31## "" \r\c Name? osu-cis nected \c GO \d\r\d\r\d\r in:--in:--in:
- Uanon
-
- Modify as appropriate for your site, of course, to deal with your
- local telephone system. There are no limitations concerning the hours
- of the day you may call.
-
- Another possibility is to use UUNET, although they charge you
- for it. You have been duly warned. Here's the advert:
-
- Anonymous Access to UUNET's Source Archives
-
- 1-900-GOT-SRCS
-
- UUNET now provides access to its extensive collection of UNIX
- related sources to non- subscribers. By calling 1-900-468-7727
- and using the login "uucp" with no password, anyone may uucp any
- of UUNET's on line source collection. Callers will be charged 40
- cents per minute. The charges will appear on their next tele-
- phone bill.
-
- The file uunet!/info/help contains instructions. The file
- uunet!/index//ls-lR.Z contains a complete list of the files available
- and is updated daily. Files ending in Z need to be uncompressed
- before being used. The file uunet!~/compress.tar is a tar
- archive containing the C sources for the uncompress program.
-
- This service provides a cost effective way of obtaining
- current releases of sources without having to maintain accounts
- with UUNET or some other service. All modems connected to the
- 900 number are Telebit T2500 modems. These modems support all
- standard modem speeds including PEP, V.32 (9600), V.22bis (2400),
- Bell 212a (1200), and Bell 103 (300). Using PEP or V.32, a 1.5
- megabyte file such as the GNU C compiler would cost $10 in con-
- nect charges. The entire 55 megabyte X Window system V11 R4
- would cost only $370 in connect time. These costs are less than
- the official tape distribution fees and they are available now
- via modem.
-
- UUNET Communications Services
- 3110 Fairview Park Drive, Suite 570
- Falls Church, VA 22042
- +1 703 876 5050 (voice)
- +1 703 876 5059 (fax)
- info@uunet.uu.net
-
-
-
- 1.7) Where can I get more information on Perl?
-
- We'll cover five areas here: USENET (where you're probably reading
- this), publications, the reference guide, examples on the Internet,
- and Perl instructional courses.
-
- A. USENET
-
- You should definitely read the USENET comp.lang.perl newsgroup or
- mailing list for all sorts of discussions regarding the language,
- bugs, features, history, humor, and trivia. In this respect, it
- functions both as a comp.lang.* style newsgroup and also as a user
- group for the language; in fact, there's a mailing list called
- ``perl-users'' that is bidirectionally gatewayed to the newsgroup; see
- question #38 for details. Larry Wall is a very frequent poster here,
- as well as many (if not most) of the other seasoned Perl programmers.
- It's the best place for the very latest information on Perl.
-
- B. PUBLICATIONS
-
- If you've been dismayed by the ~80-page troffed Perl man page (or is
- that man treatise?) you should look to ``the Camel Book'', written by
- Larry and Randal L. Schwartz <merlyn@ora.com>, published as a Nutshell
- Handbook by O'Reilly & Associates and entitled _Programming Perl_.
- Besides serving as a reference guide for Perl, it also contains
- tutorial material and is a great source of examples and cookbook
- procedures, as well as wit and wisdom, tricks and traps, pranks and
- pitfalls. The code examples contained therein are available via
- anonymous FTP from ftp.uu.net in
- /published/oreilly/nutshell/perl/perl.tar.Z for your retrieval.
- Corrections and additions to the book can be found in the Perl man
- page right before the BUGS section under the heading ERRATA AND
- ADDENDA.
-
- If you can't find the book in your local technical bookstore, the book
- may be ordered directly from O'Reilly by calling 1-800-998-9938 if in
- North America and 1-707-829-0515. The book's ISBN is 0-937175-64-1.
-
- Autographed copies are *NO LONGER* available from TECHbooks --
- you'll have to nab the authors in person if you want one. Larry
- routinely carries around a camel stamp for just such an occasion.
-
- Reasonably substantiated rumor has it that there will be another Perl
- book out pretty soon, this one aimed more at beginners. Look for it
- from ORA towards the beginning of 93.
-
- Larry Wall has published a 3-part article on perl in Unix World
- (August through October of 1991), and Rob Kolstad also had a 3-parter
- in Unix Review (May through July of 1990). Tom Christiansen also has
- a brief overview article in the trade newsletter Unix Technology
- Advisor from November of 1989. You might also investigate "The Wisdom
- of Perl" by Gordon Galligher from SunExpert magazine; April 1991
- Volume 2 Number 4. The newest (Dec 92) Computer Language magazine
- is also alleged to contain a cover article on Perl.
-
- The USENIX LISA (Large Installations Systems Administration) Conference
- have for several years now included many papers of tools written in
- Perl. Old proceedings of these conferences are available; look in
- your current issue of ";login:" or send mail to office@usenix.org
- for further information.
-
- C. INTERNET
-
- For other examples of Perl scripts, look in the Perl source directory in
- the eg subdirectory. You can also find a good deal of them on
- archive.cis.ohio-state.edu in the pub/perl/scripts/ subdirectory.
-
- Another source for examples, currently only for anonymous FTP, is on
- convex.com [130.168.1.1]. This contains, amongst other things,
- a copy of the newsgroup up through Aug 91, a text retrieval database
- for the newsgroup, a rather old and short troff version of Tom Christiansen's
- perl tutorial (this was the version presented at Washington DC USENIX),
- and quite a few of Tom's scripts. You can look at the INDEX file
- in /pub/perl/INDEX for a list of what's in that directory.
-
- The Convex and Ohio State archives are mirrored on uunet
- in /languages/perl/scripts-{convex,osu}.
-
- D. REFERENCE GUIDE
-
- A nice reference guide by Johan Vromans <jv@mh.nl> is also available;
- It is distributed in LaTeX (source) and PostScript (ready to
- print) forms. Obsolete versions may still be available in TeX and troff
- forms, although these don't print as nicely. The official kit
- includes both LaTeX and PostScript forms, and can be FTP'd from
- ftp.cs.ruu.nl [131.211.80.17], file /pub/DOC/perlref-4.035.tar.Z.
- The reference guide comes with the O'Reilly book in a nice, glossy
- card format.
-
- E. PERL COURSES
-
- Various technical conferences, including USENIX, SUG, WCSAS, AUUG,
- FedUnix, and Europen have been sponsoring tutorials of varying lengths
- on Perl at their system administration and general conferences. You
- might consider attending one of these. These classes are typically
- taught by Tom Christiansen <tchrist@usenix.com>, although both Rob
- Kolstad <kolstad@usenix.org> and Randal Schwartz <merlyn@ora.com> also
- teach Perl on occasion. Special appearances by Tom, Rob, and/or
- Randal may also be negotiated. Classes can run from one day up to a
- week ranging over a wide range of subject matter (most are two or
- three days), and can include lab time if you want; having lab time
- with exercises is generally of great benefit. Send us mail if your
- organization is interested in having a Perl class taught at your site.
-
-
- 1.8) Can people who aren't on USENET receive comp.lang.perl as a digest?
-
- "Perl-Users" is the mailing list version of the comp.lang.perl
- newsgroup. If you're not lucky enough to be on USENET you can post to
- comp.lang.perl by sending to one of the following addresses. Which one
- will work best for you depends on which nets your site is hooked into.
- Ask your local network guru if you're not certain.
-
- Internet: PERL-USERS@VIRGINIA.EDU
- Perl-Users@UVAARPA.VIRGINIA.EDU
-
- BitNet: Perl@Virginia
-
- uucp: ...!uunet!virginia!perl-users
-
- The Perl-Users list is bidirectionally gatewayed with the USENET
- newsgroup comp.lang.perl. This means that VIRGINIA functions as a
- reflector. All traffic coming in from the non-USENET side is
- immediately posted to the newsgroup. Postings from the USENET side are
- periodically digested and mailed out to the Perl-Users mailing list. A
- digest is created and distributed at least once per day, more often if
- traffic warrants.
-
- All requests to be added to or deleted from this list, problems,
- questions, etc., should be sent to:
-
- Internet: Perl-Users-Request@Virginia.EDU
- Perl-Users-Request@uvaarpa.Virginia.EDU
-
- BitNet: Perl-Req@Virginia
-
- uucp: ...!uunet!virginia!perl-users-request
-
- Coordinator: Marc Rouleau <mer6g@VIRGINIA.EDU>
-
- 1.9) Are archives of comp.lang.perl available?
-
- Yes, although they're poorly organized. You can get them from
- the host ftp.cs.caltech.edu (131.215.128.204) in the directory
- /pub/comp.lang.perl. The file is comp.lang.perl.tar.Z; this file
- was last modified on February 15, 1992, and is 8.9 megabytes long.
-
- These are currently stored in news- or MH-style format; there are
- subdirectories named things like "arrays", "programs", "taint", and
- "emacs". Unfortunately, only the first ~1600 or so messages have been
- so categorized, and we're now up to almost 15000. Furthermore, even
- this categorization was haphazardly done and contains errors.
-
- A more sophisticated query and retrieval mechanism is desirable.
- Preferably one that allows you to retrieve article using a fast-access
- indices, keyed on at least author, date, subject, thread (as in "trn")
- and probably keywords. Right now, the MH pick command works for this,
- but it is very slow to select on 15000 articles.
-
- If you're serious about this, your best bet is probably to retrieve
- the compressed tarchive and play with what you get. Any suggestions
- how to better sort this all out are extremely welcome.
-
- Currently the comp.lang.perl archives on convex.com are nearly a year
- behind. That's because I no longer have room to store them there. I
- do have them all on-line still, but they are not publicly accessible.
- If you have a special request for a query on the old newsgroup
- postings, and make nice noises in my direction, I can run the query
- and send them to you. Algebraic queries are like "find me anything
- about this and that and the other thing but not this or whozits". I
- hope to put this in the form of a mailserver. Donated software would
- be fine. :-)
-
- The fast text-retrieval query system for this I'm currently using is
- Liam Quin's excellent lqtext system, available from ftp.cs.toronto.edu
- in /pub/lq-text* .
-
- Rumor has it that there are WAIS servers out there for comp.lang.perl
- these days, but I haven't used them. Any information on these would
- be appreciated.
-
-
- 1.10) How do I get Perl to run on machine FOO?
-
- Perl comes with an elaborate auto-configuration script that allows Perl
- to be painlessly ported to a wide variety of platforms, including many
- non-UNIX ones. Amiga and MS-DOS binaries are available on
- jpl-devvax.jpl.nasa.gov [128.149.1.143] for anonymous FTP. Try to bring
- Perl up on your machine, and if you have problems, examine the README
- file carefully, and if all else fails, post to comp.lang.perl;
- probably someone out there has run into your problem and will be able
- to help you.
-
- In particular, since they're so often asked about, here's some information
- for the MacIntosh from Matthias Ulrich Neeracher <neeri@iis.ethz.ch>:
-
- A port of Perl to the Apple Macintosh is available by anonymous
- ftp to wuarchive.wustl.edu [128.252.135.4] from the file
- /mirrors2/rascal.ics.utexas.edu/programming/Perl_402_MPW_CPT_bin .
-
- You can also get it from Host gatekeeper.dec.com [16.1.0.2]
- in /.9/plan/perl/macperl/Perl_402_MPW_CPT_bin .
-
- The file is 1.1M and must be transferred in BINARY mode. Please
- be considerate of the archive sites' users during CDT working hours.
- (And, no, there is no way to get it by email).
-
- For European users, the file should soon appear on lth.se.
-
- To make optimal use of all the features of this port, you
- should have MPW, ToolServer, and 5M of memory. There is also a
- standalone version included, but it's currently of very limited
- usefulness.
-
- This package contains all of the sources for compilation with
- MPW C 3.2
-
- Here's more, from Timothy Murphy <tim@maths.tcd.ie >
-
-
- I ported perl to the Mac, using Think C, a while ago. I've
- used it quite a lot since without problems.
-
- It is available from ftp.maths.tcd.ie in pub/Mac/perl.hqx .
- The source (as diffs from the standard source) is in the
- subdirectory pub/Mac/perl-4.035 .
-
- A Mac version of patch is also available in pub/Mac/patch.hqx
- with source in pub/Mac/patch-2.0 . Various other Mac ports of
- GNU programs can be found in the same place.
-
- They all use a small "ThinkCPosix" library containing various
- Unix-like functions, which again can be found in the same
- place.
-
- And here's some VMS information from Rao V. Akella
- <rao@moose.cccs.umn.edu>: (this appears to be an old port)
-
- You can pick up Perl for VMS (version 3.0.1.1 patchlevel 4) via
- anonymous ftp from ftp.pitt.edu [130.49.253.1] in the
- software/vms/perl subdirectory (there are two files there:
- perl-pl18.bck and perl-pl4.bck).
-
- There is also a v3.018 on info.rz.uni-ulm.de [134.60.1.125] or
- vms.huji.ac.il [128.139.4.3] in /pub/VMS/misc (information courtesy
- of Anders Rolff <rolff@scotty.eurokom.ie>).
-
- And here is a recent version for MS-DOS from Budi Rahard
- <rahard@ee.UManitoba.CA>, who says:
-
- I am collecting MS-DOS Perl(s) in ftp.ee.umanitoba.ca directory
- /pub/msdos/perl. Currently I received three versions of Perl v4.019
- and one of 4.010. (Tommy Thorn <tthorn@daimi.aau.dk> and Len Reed
- <holos0!lbr@gatech.edu>)
-
- There is now a 4.035 for 386 [DOS], Hitoshi Doi <doi@jrd.december.com>
- port, is available ftp.ee.umanitoba.ca as /pub/msdos/perl/perl386.zoo .
-
- Please contact the porters directly in case of questions about
- these ports.
-
-
- 1.11) Where can I get (info|inter|ora|sql|syb)perl?
-
- Numerous database-oriented extensions to Perl have been written.
- These amount to using the usub mechanism (see the usub/ subdirectory
- in the distribution tree) to link in a database library, allowing
- embedded calls to Informix, Interbase, Oracle, Ingres, and Sybase.
- There is currently a project underway, organized by Buzz Moschetti
- <buzz@bear.com>, to create a higher level interface (DBperl) that
- will allow you to write your queries in a database-independent
- fashion. If you're interested, send mail to
- <perldb-interest-request@vix.com> about it.
-
- Meanwhile, here are the authors of the various extensions:
-
- What Target DB Who
- -------- ----------- ----------------------------------------
- Infoperl Informix Kurt Andersen (kurt@hpsdid.sdd.hp.com)
- Interperl Interbase Buzz Moschetti (buzz@bear.com)
- Oraperl Oracle Kevin Stock (kstock@encore.com)
- Sqlperl Ingres Ted Lemon (mellon@ncd.com)
- Sybperl Sybase Michael Peppler (mpeppler@itf.ch)
-
-
- 1.12) There's an a2p and an s2p; why isn't there a p2c (perl-to-C)?
-
- Because the Pascal people would be upset that we stole their name. :-)
-
- The dynamic nature of Perl's do and eval operators (and remember that
- constructs like s/$mac_donald/$mac_gregor/eieio count as an eval) would
- make this very difficult. To fully support them, you would have to put
- the whole Perl interpreter into each compiled version for those scripts
- using them. This is what undump does right now, if your machine has it.
- If what you're doing will be faster in C than in Perl, maybe it should
- have been written in C in the first place. For things that ought to be
- written in Perl, the interpreter will be just about as fast, because the
- pattern matching routines won't work any faster linked into a C program.
- Even in the case of simple Perl programs that don't do any fancy evals, the
- major gain would be in compiling the control flow tests, with the rest
- still being a maze of twisty, turny subroutine calls. Since these are not
- usually the major bottleneck in the program, there's not as much to be
- gained via compilation as one might think.
-
-
- 1.13) Where can I get undump for my machine?
-
- The undump program comes from the TeX distribution. If you have TeX, then
- you may have a working undump. If you don't, and you can't get one,
- *AND* you have a GNU emacs working on your machine that can clone itself,
- then you might try taking its unexec() function and compiling Perl with
- -DUNEXEC, which will make Perl call unexec() instead of abort(). You'll
- have to add unexec.o to the objects line in the Makefile. If you succeed,
- post to comp.lang.perl about your experience so others can benefit from it.
-
-
- 1.14) Where can I get a perl-mode for emacs?
-
- In the perl4.0 source directory, you'll find a directory called
- "emacs", which contains several files that should help you.
-
-
- 1.15) How can I use Perl interactively?
-
- The easiest way to do this is to run Perl under its debugger.
- If you have no program to debug, you can invoke the debugger
- on an `empty' program like this:
-
- perl -de 0
-
- (The more positive amongst us prefer "perl -de 1". :-)
-
- Now you can type in any legal Perl code, and it will be immediately
- evaluated. You can also examine the symbol table, get stack
- backtraces, check variable Values, and if you want to, set
- breakpoints and do the other things you can do in a symbolic debugger.
-
-
- 1.16) Is there a Perl shell?
-
- Not really. Perl is a programming language, not a command
- interpreter. There is a very simple one called "perlsh"
- included in the Perl source distribution. It just does this:
-
- $/ = ''; # set paragraph mode
- $SHlinesep = "\n";
- while ($SHcmd = <>) {
- $/ = $SHlinesep;
- eval $SHcmd; print $@ || "\n";
- $SHlinesep = $/; $/ = '';
- }
-
- Not very interesting, eh?
-
- Daniel Smith <dansmith@autodesk.com> is working on an interactive Perl
- shell called SoftList. It's currently at version 3.0beta. SoftList
- 3.0 has tcsh-like command line editing, can let you define a file of
- aliases so that you can run chunks of perl or UNIX commands, and so
- on. You can send mail to him for further information and availability.
-
-
- 1.17) Is there a Perl profiler?
-
- While there isn't one included with the perl source distribution,
- various folks have written packages that allow you to do at least some
- sort of profiling. The strategy usually includes modifying the perl
- debugger to handle profiling. Authors of these packages include
-
- Wayne Thompson <me@anywhere.EBay.Sun.COM>
- Ray Lischner <lisch@sysserver1.mentor.com>
- Kresten Krab Thorup <krab@iesd.auc.dk>
-
- The original articles by these folks containing their
- profilers are available on convex.com in
- /pub/perl/information/profiling.shar via anon ftp.
-
-
- 1.18) Is there a yacc for Perl?
-
- Yes!! It's a version of Berkeley yacc that outputs Perl code instead
- of C code! You can get this from ftp.sterling.com [192.124.9.1] in
- /local/perl-byacc1.8.1.tar.Z, or send the author mail for details.
-
-
- 1.19) How can I use curses with perl?
-
- One way is to build a curseperl binary by linking in your C curses
- library as described in the usub subdirectory of the perl sources.
- This requires a modicum of work, but it will be reasonably fast
- since it's all in C (assuming you consider curses reasonably fast. :-)
- Programs written using this method require the modified curseperl,
- not vanilla perl, to run. While this is something of a disadvantage,
- experience indicates that it's better to use curseperl than to
- try to roll your own using termcap directly.
-
- Another possibility is to use Henk Penning's cterm package, a curses
- emulation library written in perl. cterm is actually a separate
- program with which you communicate via a pipe. It is available from
- ftp.cs.ruu.nl [131.211.80.17] via anonymous ftp. in the directory
- pub/PERL. You may also acquire the package via email in compressed,
- uuencoded form by sending a message to mail-server@cs.ruu.nl
- containing these lines:
-
- begin
- send PERL/cterm.shar.Z
- end
-
- See the question on retrieving perl via mail for more information on
- how to get retrieve other items of interest from the mail server
- there.
-
-
- 1.20) How can I use X with Perl?
-
- Right now, you have several choices. You can wait for perl5, use
- the WAFE or STDWIN packages, or try to make your own usub bindings.
-
- Perl5 is anticipated to be released with bindings for X, called
- guiperl. An exciting prototype for this, written by Jon Biggar
- <jon@netlabs.com>, Larry's *other* brother-in-law and officemate,
- is already up and running inside of Netlabs. This program addresses
- the same dynamic gui-building problem space as does tcl/tk.
-
- If you can't wait or don't think that guiperl will do what you want,
- a stab at Motif bindings was begun by Theodore C. Law
- <TEDLAW@TOROLAB6.VNET.IBM.COM> area. His article about this is
- on convex.com in /pub/perl/info/motif for anon ftp.
-
- STDWIN is a library written by Guido van Rossum <guido@cwi.nl>
- (author of the Python programming language) that is portable
- between Mac, Dos and X11. One could write a Perl agent to
- speak to this STDWIN server.
-
- WAFE is a package that implements a symbolic interface to the Athena
- widgets (X11R5). A typical Wafe application consists in our framework
- of two parts: the front-end (we call it Wafe for Widget[Athena]front
- end) and an application program running typically as separate process.
- The application program can be implemented in an arbitrary programming
- language and talks to the front-end via stdio. Since Wafe (the
- front-end) was developed using the extensible TCL shell (cite John
- Ousterhout), an application program can dynamically submit requests to
- the front-end to build up the graphical user interface; the
- application can even down-load application specific procedures into
- the front-end. The distribution contains sample application programs
- in Perl, GAWK, Prolog, TCL, and C talking to the same Wafe binary.
- Many of the demo applications are implemented in Perl. Wafe 0.9 can
- be obtained via anonymous ftp from
- ftp.wu-wien.ac.at:pub/src/X11/wafe-0.9.tar.Z
- (for people without name server: the ip address is 137.208.3.5)
-
-
- 1.21) What is perl4? What is perl5?
-
- The answer to what is perl4 is nearly anything you might otherwise
- program in shell or C. The answer to what is perl5 is basically
- Perl: the Next Generation. In fact, it's essentially a complete
- rewrite of perl from the bottom up, and back again.
-
- Larry gave a talk on perl5 at a Bay LISA meeting as well as at the
- most recent USENIX LISA conference in Long Beach in which he timorously
- admitted that perl5 might possibly be beta released in early 1993.
- He enumerated some of the following features. Note that not only have
- not all these been implemented yet, the ones further down the list
- might well not get done at all.
-
- a faster, tighter, more flexible interpreter
- very easy GUI Perl applications using X bindings ("guiperl")
- embeddable Perl code in C code: cc prog.c -lperl
- multiple coresident perl interpreters:
- perhaps threading and/or coroutines
- named argument passing:
- some_func( OC => $red, TOF => "\f");
- recursive lists:
- [a, b, [c, d], e] has 4 elts, the 3rd being itself a list
- typed pointers and generalized indirection:
- like @{$aptr} or &{$fptr} or &{ $table[$index] . "func" }().
- merging of list operator and function calling syntax:
- split /pat/, $string;
- subroutines without &'s: myfunc($arg);
- generalization of dbm binding for assoc arrays to handle
- any generic fetch/store/open/close/flush package.
- (thus allowing both dbm and gdbm at once)
- object oriented programming:
- STDOUT->flush(1);
- give dog $bone;
- lexical scoping
- dynamic loading of C libraries for systems that can
- byte-compiled code for speed and maybe security
-
- It's tempting to want this stuff soon, since the sooner it comes
- out the sooner we can all build really cool applications. But the
- longer Larry works on it, the more items from this list will actually
- get done, and the more robust the release will be. So let's not
- ask him about it too often.
-
-
- 1.22) How does Perl compare with languages like REXX or TCL?
-
- REXX is an interpreted programming language first seen on IBM systems,
- and TCL is John Ousterhout's embeddable command language. TCL's most
- intriguing feature for many people is the tcl/tk toolset that allows
- for interpreted X-based tools.
-
- To avoid any flamage, if you really want to know the answer to this
- question, probably the best thing to do is try to write equivalent
- code to do a set of tasks. All three have their own newsgroups in
- which you can learn about (but hopefully not argue about) these
- languages.
-
- To find out more about these or other languages, you might also check
- out David Muir Sharnoff <muir@tfs.com>'s posting on "Catalog of
- compilers, interpreters, and other language tools" which he posts to
- comp.lang.misc, comp.sources.d, comp.archives.admin, and the
- news.answers newsgroups. It's a comprehensive treatment of many
- different languages. (Caveat lector: he considers Perl's syntax
- "unappealing".) This list is archived on convex.com in
- /pub/perl/info/lang-survey.shar .
-
-
- 1.23) Is it a Perl program or a Perl script?
-
- Certainly. :-)
-
- Current UNIX parlance holds that anything interpreted
- is a script, and anything compiled into native machine
- code is a program. However, others hold that a program
- is a program is a program: after all, one seldom discusses
- scripts written in BASIC or LISP. Larry considers it
- a program if it's set in stone and you can't change it,
- whereas if you go in and hack on it, then it's a script.
-
- But doesn't really matter. The terms are generally
- interchangeable today.
-
-
- 1.24) What's the difference between "Perl" and "perl"?
-
- 32 :-) [ ord('p') - ord('P') ]
-
- Larry now uses "Perl" to signify the language proper and "perl" the
- implementation of it, i.e. the current interpreter. Hence my quip
- that "Nothing but perl can parse Perl."
-
- On the other hand, the aesthetic value of casewise parallelism
- in "awk", "sed", and "perl" as much require the lower-case
- version as "C", "Pascal", and "Perl" require the
- upper-case version. It's also easier to type "Perl" in
- typeset print than to be constantly switching in Courier. :-)
-
- In other words, it doesn't matter much, especially if all
- you're doing is hearing someone talk about the language;
- case is hard to distingish aurally.
-
-
- 1.25) What companies use or ship Perl?
-
- At this time, the known list of companies that ship Perl includes at
- least the following:
-
- BSDI
- Comdisco Systems
- CONVEX Computer Corporation
- Dell
- Integraph
- Kubota Pacific (/usr/contrib)
- Netlabs
-
- Many other companies use Perl internally for purposes of tools
- development, systems administration, installation scripts, and test
- suites. Rumor has it that the large workstation vendors (the TLA set)
- are seriously looking into shipping Perl with their standard systems
- "soon".
-
- People with support contracts with their vendors are actively
- encouraged to submit enhancement requests that Perl be shipped
- as part of their standard system. It would, at the very least,
- reduce the FTP load on the Internet. :-)
-
-
- 1.26) Is there commercial, 3rd-party support for Perl?
-
- No. Although perl is included in the GNU distribution, at last check,
- Cygnus does not offer support for it. However, it's unclear whether
- they've ever been offered sufficient financial incentive to do so.
-
- On the other hand, you do have comp.lang.perl as a totally gratis
- support mechanism. As long as you ask "interesting" questions,
- you'll probably get plenty of help. :-)
-
- 1.27) Where can I get a list of the JAPH signature quotes?
-
- These are the "just another perl hacker" signatures that
- some people sign their postings with. About 100 of the
- of the earlier ones are on convex.com in /pub/perl/info/japh.
-
- 1.28) Where can I get a list of Larry Wall witticisms?
-
- Over a hundred quips by Larry, from postings of his or source code,
- can be found on convex.com in /pub/perl/info/lwall-quotes.
-
- 1.29) Is there a pretty-printer for Perl?
-
- That depends on what you mean. If you want something
- that works like vgrind on Perl programs, then the answer
- is "yes, nearly". Here's a vgrind entry for perl:
-
- PERL|perl|Perl:\
- :pb=(^\d?sub\d\p\d?|\{):\
- :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
- :le=\e':tl:\
- :id=_:\
- :kw=\
- if for foreach unless until while continue else elsif \
- do eval require \
- die exit \
- defined delete reset \
- goto last redo next dump \
- local undef return \
- write format \
- sub package
-
- It doesn't actually do everything right; in particular,
- things like $#, $', s#/foo##, and $foo'bar all confuse it.
-
- If what you mean is whether there is a program that will
- reformat the program much as indent(1) will do for C, then
- the answer is no. The complex feedback between the scanner
- and the parser (as in the things that confuse vgrind) make
- it challenging to write at best to write a stand-alone C parser.
- --
- Tom Christiansen tchrist@convex.com convex!tchrist
-
- California is a fine place to live -- if you happen to be an orange.
- -- Fred Allen
- --
- Tom Christiansen tchrist@convex.com convex!tchrist
-
- As far as we know, our computer has never had an undetected error.
- -- Weisert
-